<?php

namespace App\Admin\Actions\Form;

use Dcat\Admin\Actions\Response;
use Dcat\Admin\Form\AbstractTool;
use Dcat\Admin\Traits\HasPermissions;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;

class Back extends AbstractTool
{
    /**
     * 按钮标题
     *
     * @return string
     */
    protected $title = '返回';

    /**
     * 处理请求，如果不需要接口处理，请直接删除这个方法
     *
     * @param Request $request
     *
     * @return Response
     */
    public function handle(Request $request)
    {
        // 获取主键
        $key = $this->getKey();

        return $this->response()
            ->success('Processed successfully.')
            ->redirect('/');
    }

    /**
     * 如果只是a标签跳转，则在这里返回跳转链接即可
     *
     * @return string|void
     */
    protected function href()
    {
        $activity_id = request()->input('act_id');
        return admin_url('/scoreActivity/list/' . $activity_id . '/edit');
    }

    // 如果你想自定义动作按钮的HTML，可以重写此方法
    public function html()
    {
        return parent::html();
    }

    /**
     * 确认弹窗信息，如不需要可以删除此方法
     *
     * @return string|array|void
     */
    public function confirm()
    {
        // return ['Confirm?', 'contents'];
    }

    /**
     * 权限判断，如不需要可以删除此方法
     *
     * @param Model|Authenticatable|HasPermissions|null $user
     *
     * @return bool
     */
    protected function authorize($user): bool
    {
        return true;
    }

    /**
     * 返回请求接口的参数，如不需要可以删除此方法
     *
     * @return array
     */
    protected function parameters()
    {
        return [];
    }
}
